/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entities;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;

/**
 *
 * @author nd.hurtado2814
 */
@Entity

public class Inmueble implements Serializable {
    //------------------------------------------
    //Constantes
    //------------------------------------------

    private static final long serialVersionUID = 1L;
    //------------------------------------------
    //Atributos
    //------------------------------------------
    /**
     * Representa el id del inmueble
     */
    @Id
    private String id;
    /**
     * Representa la informacion que describe las características y otros del inmueble
     */
    @Column
    private String informacion;

    @OneToMany
    private List<Reporte> reportes;

    @OneToMany
    private List<Sensor> sensores;

    @OneToMany
    private List<Usuario> usuarios;

    //------------------------------------------
    //Metodos
    //------------------------------------------
    /**
     * Constructor de una instancia de la clase Inmueble
     */
    public Inmueble() {
    }

    /**
     * Metodo encargado de retornar un string con el id del inmueble
     * @return String el id del inmueble
     */
    public String getId() {
        return id;
    }

    /**
     * Metodo encargado de cambiar el id del inmueble
     * @param id String que representa el nuevo id del inmueble
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * Metodo encargado de retornar un arraylist ordenado de las alarmas tipo incendio
     * @return Arraylist con las alarmas de tipo incendio asociadas al inmueble
     */
    public List<Reporte> getReportes() {
        return reportes;
    }

    /**
     *Metodo encargado de colocar la nueva lista de alarmas de incendio pasada como parametro
     * @param incendios Un arraylist con Alarmas de tipo incendio
     */
    public void setReportes(List<Reporte> repo) {
        this.reportes = repo;
    }

    /**
     * Metodo encargado de retornar la informacion adicional del inmueble
     * @return String con la informacion adicional del inmueble
     */
    public String getInformacion() {
        return informacion;
    }

    /**
     * Metodo encargado de cambiar la informacion adicional del inmueble por la pasada como parametro
     * @param informacion String con la nueva informacion del inmueble
     */
    public void setInformacion(String informacion) {
        this.informacion = informacion;
    }
}
